"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/7/7 11:28
@Description : 
 面向对象思路 实现数据的获取
"""
import requests
from urllib import parse


class DangDangSpider:
    #  数据初始化  url  header
    def __init__(self):
        self.url = 'https://search.dangdang.com/?key={}&act=input'
        self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36'
        }

    # 1. 获取页面
    def get_html(self, url):
        html = requests.get(url, headers=self.headers).content.decode('gbk')
        return html

    # 2. 解析页面  正则表达式
    def parse_html(self, html):
        """解析页面中的数据"""
        pass

    # 3. 数据保存
    def save_data(self, file_name, html):
        """数据持久化  csv  mysql"""
        with open(file_name, 'w', encoding='gbk') as f:
            f.write(html)

    # 4.  业务处理
    def run(self):
        search_param = input('请输入搜索关键词:')
        encode_param = parse.quote(search_param)
        url = self.url.format(encode_param)
        # 获取网页
        html = self.get_html(url)

        # 保存页面
        self.save_data(f'{search_param}.html', html)

if __name__ == '__main__':
    spider = DangDangSpider()
    spider.run()
